import pandas as pd
import plotly.graph_objs as go
import plotly.express as px
import plotly.io as pio
pio.templates.default = "plotly_white"
data = pd.read_csv('UK_monthly_gdp.csv')
print(data.head())
Time Period GDP Growth 0 /01/2020 0.3 1 /02/2020 -0.5 2 /03/2020 -7.0 3 /04/2020 -20.9 4 /05/2020 3.2
fig = go.Figure(data=go.Heatmap(
z=[data['GDP Growth']],
x=data.index,
y=['GDP Growth'],
colorscale='Viridis'))
fig.update_layout(title='GDP Growth over Time',
xaxis_title='Time Period',
yaxis_title='')
fig.show()
data['Time Period'] = pd.to_datetime(data['Time Period'], format='/%m/%Y')
data.set_index('Time Period', inplace=True)
quarterly_data = data.resample('Q').mean()
print(quarterly_data.head())
GDP Growth Time Period 2020-03-31 -2.400000 2020-06-30 -2.900000 2020-09-30 3.500000 2020-12-31 0.200000 2021-03-31 0.033333
quarterly_data['Recession'] = ((quarterly_data['GDP Growth'] < 0) & (quarterly_data['GDP Growth'].shift(1) < 0))
quarterly_data['Recession'].fillna(False, inplace=True)
fig = go.Figure()
fig.add_trace(go.Scatter(x=quarterly_data.index,
y=quarterly_data['GDP Growth'],
name='GDP Growth',
line=dict(color='green', width=2)))
fig.add_trace(go.Scatter(x=quarterly_data[quarterly_data['Recession']].index,
y=quarterly_data[quarterly_data['Recession']]['GDP Growth'],
name='Recession', line=dict(color='red', width=2)))
fig.update_layout(title='GDP Growth and Recession over Time (Quarterly Data)',
xaxis_title='Time Period',
yaxis_title='GDP Growth')
fig.show()
quarterly_data['Recession Start'] = quarterly_data['Recession'].ne(quarterly_data['Recession'].shift()).cumsum()
recession_periods = quarterly_data.groupby('Recession Start')
recession_duration = recession_periods.size()
recession_severity = recession_periods['GDP Growth'].sum()
fig = go.Figure()
fig.add_trace(go.Bar(x=recession_duration.index, y=recession_duration,
name='Recession Duration'))
fig.add_trace(go.Bar(x=recession_severity.index, y=recession_severity,
name='Recession Severity'))
fig.update_layout(title='Duration and Severity of Recession',
xaxis_title='Recession Periods',
yaxis_title='Duration/Severity')
fig.show()
A recession is an economic situation that arrives when the circulation of money in the economy is low for two consecutive quarters. Recession is calculated and analyzed according to the growth in GDP, the growth in the unemployment rate, and the growth in consumer spending rate. I hope you liked this article on Recession Analysis using Python. Feel free to ask valuable questions in the comments section below.